// 自己封装的 uni.request 工具类
import utils from './utils';
let wx = require('@/components/jweixin-module/index.js');

export default {
    //判断是否在微信中  
    isWechat() {
        var ua = window.navigator.userAgent.toLowerCase();
        if (ua.match(/micromessenger/i) == 'micromessenger') {
            // console.log('是微信客户端')
            return true;
        } else {
            // console.log('不是微信客户端')
            return false;
        }
    },
	
	//请求微信接口，用来获取code
	wxh5Login(scope, local) {
		// TODO 建一个专门处理微信H5的文件 转移过去
		let appid = 'wxe0b976aac78ba391'
		
		//通过微信官方接口获取code之后，会重新刷新设置的回调地址【redirect_uri】
		window.location.href =
			"https://open.weixin.qq.com/connect/oauth2/authorize?appid=" +
			appid + 
			"&redirect_uri=" +
			utils.shareUrl() + local +
			"&response_type=code&scope=" +
			scope +
			"&state=1#wechat_redirect";
	},
	
	//判断是否是IOS
	isIOS() {
		if (/(iPhone|iPad|iPod|iOS)/i.test(window.navigator.userAgent)) { //判断iPhone|iPad|iPod|iOS
		  return true;
		} else {
		  return false;
		};
	},
	//解决IOS首次进入页面分享不生效问题
	// fixIosShare() {
	// 	if(this.isIOS()) {
	// 		let iosReload = uni.getStorageSync("iosReload");
	// 		if(!iosReload) {
	// 			uni.setStorageSync("iosReload", "1");
	// 			setTimeout(()=>{
	// 				window.location.reload();
	// 			}, 2000)
	// 			return true;
	// 		} else {
	// 			uni.removeStorageSync("iosReload");
	// 			return false;
	// 		}
	// 	}
	// },
    //在需要自定义分享的页面中调用  
    share(data) {
        if (!this.isWechat()) {
            return;
        }
        //每次都需要重新初始化配置，才可以进行分享  
        this.initJssdk(() => {
            wx.ready(() => {
				wx.hideAllNonBaseMenuItem();
				wx.showMenuItems({
				  menuList: ['menuItem:share:appMessage','menuItem:share:timeline'] // 要显示的菜单项，所有menu项见附录3
				});
				let shareData = {
					title: data && data.title ? data.title : '',
					desc: data && data.desc ? data.desc : '',
					link: data && data.link ? data.link : '',
					imgUrl: data && data.imgUrl ? data.imgUrl : '',
					success: function(res) {
						// 分享后的一些操作,比如分享统计等等
					},
					cancel: function(res) {}
				};
				//分享给朋友接口  
				wx.updateAppMessageShareData(shareData);
				//分享到朋友圈接口  
				wx.updateTimelineShareData(shareData);
            });
        }, ['hideAllNonBaseMenuItem', 'showAllNonBaseMenuItem', 'updateAppMessageShareData','updateTimelineShareData', 'showMenuItems', 'scanQRCode', 'getLocation']);
    },
	//初始化sdk配置
	initJssdk(callback, jsApiList) {
	    // 这是我这边封装的 request 请求工具，实际就是 uni.request 方法。
		utils.request('so-fast-drmall/wechat/jsapiTicket', 'get', {url: window.location.href.split('#')[0]}, true).then((res) => {
			if (res.status === 0) {
				wx.config({
					debug: false,
					appId: res.data.appId,
					timestamp: res.data.timestamp,
					nonceStr: res.data.noncestr,
					signature: res.data.signature,
					jsApiList: jsApiList
				});
				//配置完成后，再执行分享等功能  
				if (callback) {
					callback();
				}
			}
		})
	},
	//在需要自定义分享的页面中调用
	noShare() {
	    if (!this.isWechat()) {
	        return;
	    }
	    //每次都需要重新初始化配置，才可以进行分享  
	    this.initJssdk(() => {
	        wx.ready(() => {
	            wx.hideAllNonBaseMenuItem();
	        });
	    }, ['hideAllNonBaseMenuItem', 'scanQRCode', 'getLocation']);
	},
	cleanShare(){
		wx.hideAllNonBaseMenuItem();
	},
	scanQRCode(callBack) {
		wx.scanQRCode({
		  needResult: 1, // 默认为0，扫描结果由微信处理，1则直接返回扫描结果，
		  scanType: ["qrCode"], // 可以指定扫二维码还是一维码，默认二者都有
		  success: function (res) {
		    callBack(res.resultStr); // 当needResult 为 1 时，扫码返回的结果
		  }
		});
	},
	getLocation(callBack) {
		wx.getLocation({
		  type: 'gcj02', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'
		  success: function (res) {
			  callBack(res)
		  }
		});
	}
	
	
}